#!/bin/bash
# 
# 导入 TDengine 的数据
# 
# 约定：data_dir 目录下包含一下形式的文件：
#
# root@rhuuplkuc1k8ty0i-1118246:/mnt/sdc/opt/ems-archive/data/import/iot_ts/iot_ts_20231010#  ls -l
# total 1032
# -rw-rw-r-- 1 1000 1000 554247 Nov  2 17:17 iot_ts_20231010_create_child_tables.sql
# -rw-rw-r-- 1 1000 1000   6787 Nov  2 16:48 iot_ts_20231010_create_super_tables.sql
# -rw-rw-r-- 1 1000 1000 161317 Nov  2 16:49 iot_ts_20231010_data_properties_w_modbus_k202000018.csv
# -rw-rw-r-- 1 1000 1000 161317 Nov  2 16:49 iot_ts_20231010_data_properties_w_modbus_k202000019.csv
# -rw-rw-r-- 1 1000 1000 161317 Nov  2 16:49 iot_ts_20231010_data_properties_w_modbus_k202000020.csv

# 限制只能在测试环境的主机上执行  
if [ "$(hostname)" != "ecs-377e-1103456" ];then
    echo "ERR: 【导入脚本】只能在【测试环境】运行，不能在生产环境运行!!!"
    exit 1
fi

set -e

user="root"
pwd="taosdata"
db="test_ems_ts"

#
# 执行 sql
#
function execute_sql(){
    local sql=$1
    taos -u "$user" "-p$pwd" -s "use $db; $sql"
}

#
# 删除多余的信息，用于处理 “TDengine 连接过程” 打印的内容
#
function process_stdout(){
    sed '{
        #/^failed to create dir/d      # 删除以 "failed to create dir" 开头的行
        #/^Welcome to the TDengine/d   # 删除以 "Welcome to the TDengine" 开头的行
        #/^Copyright/d                 # 删除以 "Copyright" 开头的行
        #/^$/d                         # 删除空行
        #/^taos>/d                     # 删除以 "taos>" 开头的行        
        #/^\r/d                        # 删除回车符 "^M$"
        #/^Insert OK/d                 # 删除以 "Query OK" 开头的行        
        #/^Create OK/d                 # 删除以 "Create OK" 开头的行        
        #/^Database changed/d          # 删除以 "Database changed" 开头的行
        /^[[:space:]]*$/d
    }'    
}

insert="insert into ${db}.em758312_day_xxx file '/mnt/sdc/opt/ems-archive/data/import/ems_ts/ems_ts_20231010/ems_ts_20231010_data_em758312_day_xxx.csv'; "
execute_sql "$insert" 2>&1 | process_stdout